// AI对话功能修复验证脚本
const axios = require('axios');

async function testAIChat() {
    try {
        console.log('测试AI对话功能...');
        
        // 测试流式响应
        console.log('\n1. 测试流式响应:');
        const streamResponse = await axios.post('http://127.0.0.1:8003/ai/chat', {
            prompt: '你好，请简单介绍一下硅材料',
            temperature: 0.7,
            max_tokens: 100
        }, {
            responseType: 'stream'
        });

        console.log('流式响应状态:', streamResponse.status);
        console.log('响应头:', streamResponse.headers);
        
        // 监听流式数据
        streamResponse.data.on('data', (chunk) => {
            const data = chunk.toString();
            console.log('收到数据:', data);
            
            // 检查是否只包含text字段内容
            if (data.includes('data: ')) {
                try {
                    const jsonStr = data.replace('data: ', '').trim();
                    if (jsonStr) {
                        const parsed = JSON.parse(jsonStr);
                        console.log('解析后的内容:', parsed);
                        
                        if (parsed.content && typeof parsed.content === 'string') {
                            console.log('✅ 成功提取text字段内容:', parsed.content);
                        } else {
                            console.log('❌ 未正确提取text字段内容');
                        }
                    }
                } catch (e) {
                    console.log('解析错误:', e.message);
                }
            }
        });

        // 等待流结束
        await new Promise((resolve) => {
            streamResponse.data.on('end', resolve);
        });

        // 测试非流式响应
        console.log('\n2. 测试非流式响应:');
        const simpleResponse = await axios.post('http://127.0.0.1:8003/ai/chat/simple', {
            prompt: '你好，请简单介绍一下碳材料',
            temperature: 0.7,
            max_tokens: 100
        });

        console.log('非流式响应状态:', simpleResponse.status);
        console.log('响应数据:', simpleResponse.data);
        
        if (simpleResponse.data.response && typeof simpleResponse.data.response === 'string') {
            console.log('✅ 非流式响应成功提取text字段内容');
        } else {
            console.log('❌ 非流式响应未正确提取text字段内容');
        }

    } catch (error) {
        console.error('测试失败:', error.message);
        if (error.response) {
            console.error('响应状态:', error.response.status);
            console.error('响应数据:', error.response.data);
        }
    }
}

// 运行测试
testAIChat().then(() => {
    console.log('\n测试完成');
}).catch((error) => {
    console.error('测试异常:', error);
});